📝検索処理のrefactoring (scrapbox-select-suggestion)
✅iteratorを函数を返す函数に変える
こっちのほうが使いやすい
ソースの更新と検索の双方をhooksから分離する
より疎結合にして、検索部分を書き換えられるようにする
アルゴリズムの変更
✅やりたいこと
現状では、「空白をワイルドカード扱いするかどうか」「単語先頭と曖昧一致する候補を優先する」など、最大で4回もAsearchしている 空白一致とかいらんので消す
先頭一致は編集距離0のときのみ導入しようかと思っている
2022-11-06
19:10:54 5000件ずつ検索するようにしても問題なさそう
https://gyazo.com/d2df29ee5bf760defd473e714d6990ab
空白区切りのテキストの並び替えの動作確認はもうやった
mergeしてreleaseしよう
並び替えにも対応済み
2022-12-28 08:05:08 並び替えへの対応は不完全だが、仕様とする
不完全な点
語句がマッチした範囲を多めに見積もっている
AND検索で指定した語句同士が近すぎたり一部重複していたりするものは検索に引っかからない
全てのパターンを網羅できていない
最初に検索した語句の位置が、一番最初に出現した最短近似文字列に固定される
他の位置が考慮されていない
より正確に検索するなら、各検索語句がマッチした位置を全て保持し、最後にどの単語の出現位置も被らないような組み合わせを探すしかない
できたらおもしろいかも
ひらがなかたかな無視
全角半角無視
アクセント無視